#include "ScnsApds9960.c.h"

#if defined(SCNS_APDS9960_ENABLE)&&SCNS_APDS9960_ENABLE==1

#include "ScnsIic.h"
#include "ScnsMenu.h"

ScnsStatus scnsBspApds9960Init(ScnsApds9960Enum apdN)
{
    
    return SCNS_STATUS_OK;
}

ScnsStatus scnsBspApds9960PostInit(ScnsApds9960Enum apdN)
{
    //scnsMenuSetPage(0,"Apds9960",NULL);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],gesture,,SCNS_TYPE_UINT8);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],oc,,SCNS_TYPE_UINT16);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],or,,SCNS_TYPE_UINT16);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],og,,SCNS_TYPE_UINT16);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],ob,,SCNS_TYPE_UINT16);
    scnsMenuAddConstStruct(0,scnsApds9960Result[apdN],proximity,,SCNS_TYPE_UINT8);
    return SCNS_STATUS_OK;
}

void scnsBspApds9960ResultUpdate(ScnsApds9960Enum apdN)
{
    if(scnsMenuCanPageDisplay(0))
    {
        scnsLcdFill(SCNS_LCD_LAYER_AUTO,(Point){0,128},8,8,scnsLcdColorARGBToScreen(0XFF,scnsApds9960Result[apdN].r,scnsApds9960Result[apdN].g,scnsApds9960Result[apdN].b),0);
    }
}

static const uint8 device[SCNS_APDS9960_MAX]={0x72};

ScnsStatus scnsBspApds9960Write(ScnsApds9960Enum bmpN,const uint8*addr,uint8 addrLen,const uint8*data,uint8 dataLen)
{
    return scnsIicWrite(SCNS_IIC_SCL_C23_SDA_C22,device[bmpN],addr,addrLen,data,dataLen);
}

ScnsStatus scnsBspApds9960Read(ScnsApds9960Enum bmpN,const uint8*addr,uint8 addrLen,uint8*data,uint8 dataLen)
{
    return scnsIicRead(SCNS_IIC_SCL_C23_SDA_C22,device[bmpN],addr,addrLen,data,dataLen);
}

#endif
